package cn.powertime.evaluation.facade;

import cn.powertime.evaluation.entity.SysUser;
import cn.powertime.evaluation.vo.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author ZYW
 * @since 2019-09-02
 */
public interface SysUserFacade {
    /**
     * 根据用户名查询用户
     * @param username 用户名
     * @return 返回查询到的用户对象
     */
    List<SysUser> selectByAccount(String username);

    boolean add(ReqUserAddVo addVo);

    boolean addLion(RaqLionUserAddVo addVo);

    boolean checkUserNameOnly(String userName, Long id);

    boolean edit(ReqSysUserEditVo editVo);
    boolean accountUpdate(ReqSysUserUpdateReqVo editVo);

    boolean del(Long id);

    Page<RespSysUserVo> list(ParamPageVo<ReqSysUserListVo> vo);

    /**
     * 修改密码
     * @param vo
     * @return
     */
    boolean updatePwd(ReqSysUserUpdatePwdVo vo);

    /**
     * 重置密码
     * @param vo
     * @return
     */
    boolean resetPwd(ReqSysUserResetPwdReqVo vo);

    SysUser details(Long id);

    boolean auth(ReqSysUserAuthVo authVo);

    boolean batchDel(List<String> strings);

    boolean updatePwdApp(ReqSysUserUpdatePwdVo vo);
}
